СТРУКТУРИ ТА ОБ’ЄДНАННЯ В МОВІ ПРОГРАМУВАННЯ С

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
Комп’ютерні науки
Кафедра:
Не вказано

Інформація про роботу

Рік:
2011
Тип роботи:
Інструкція до лабораторної роботи
Предмет:
Програмно-орієнтовані мови програмування

Частина тексту файла

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ Національний університет “Львівська політехніка”  СТРУКТУРИ ТА ОБ’ЄДНАННЯ В МОВІ ПРОГРАМУВАННЯ С Інструкція до лабораторної роботи № 10 з курсу “Проблемно-орієнтовані мови програмування” для студентів базового напрямку 6.08.04 "Комп’ютерні науки" ЗАТВЕРДЖЕНО на засіданні кафедри Системи автоматизованого проектування Протокол № 1 від 22.08.2011 р. ЛЬВІВ 2011 1. МЕТА РОБОТИ Мета роботи - навчитися використовувати структури та об’єднання для програмування на мові С. 2. ТЕОРЕТИЧНІ ВІДОМОСТІ Структури Структура - це набір з однієї або більше змінних, можливо різних типів, згрупованих під одним ім'ям для зручності обробки. (У деяких мовах, наприклад Паскаль, структури називаються “записами”). Розглянемо приклад. Уявіть собі, що на календарі сьогодні 1 січня 2009 року. Дата складається з складових таких, як день, рік та назва місяця. Ці три змінні можна об’єднати в одну структуру вигляду: struct DATE { int day; int year; char mon_name[4]; }; Опис структури, що складається з взятого в фігурні дужки списку полів, починається з ключового слова struct. Після слова struct пишеться ім'я, так звана Мітка структури (тут це DATE). Ім’я може бути відсутнє. Така мітка іменує структури цього виду і може використовуватися надалі як скорочений запис детального опису. Елементи або змінні, згадані в структурі, називаються членами (полями, компонентами). Мітки і члени структур можуть мати такі ж імена, що і звичайні змінні (тобто ті, що не є членами структур), оскільки їх імена завжди можна розрізнити по контексту. Звичайно однакові імена присвоюють тільки тісно пов'язаним об'єктам. Точно так само, як у разі будь-якого іншого базового типу, за правою фігурною дужкою, що закриває список членів, може записуватись список змінних. Оператор struct { } x, y, z; // описує struct { } синтаксично аналогічний int x, y, z; // описує int в тому сенсі, що кожен з операторів описує x, y та z в якості змінних відповідних типів і приводить до виділення для них пам’яті. Опис структури, за яким не має списку змінних, не приводить до виділення пам'яті (немає змінної); він тільки визначає шаблон або форму структури. Але, якщо в такому опису є мітка, то ця мітка може бути використана пізніше при визначенні фактичних примірників структур. Наприклад, якщо дано приведений вище опис Date, то struct DATE d; визначає змінну d як структура типу Date. Операція вказівника на член структури "." зв'язує ім'я структури та ім'я члена. Наприклад: d.day = 1; d.year = 2000; d.mon_name = “січ”; В програмі це може бути реалізовано наступним чином. #include <stdio.h> #include <string.h> // для strcpy() struct DATE { int day; int year; char mon_name[4]; }; int main(void) { struct DATE d; // заповнимо структуру датою 1 січня 2000 року d.day = 1; d.year = 2000; strcpy(d.mon_name, “січ”); // виведемо на екран монітора цю дату printf(“\nDate - %d %s %d\n”, d.day, d.mon_name, d.year); return 0; } Результатом виконання програми буде напис : Date - 1 січ 2000. Структури можуть бути вкладеними. Для прикладу наведемо структуру STUDENT: struct STUDENT { char name[25]; char address[40]; long int zipcode; // поштовий индекс long int st_number; // номер студ. квитка double scholarship; // стипендія int course; // курс char group[7]; // група struct DATE birthdate; // дата народження struct DATE heredate; // дата вступу в університет }; Структура STUDENT містить дві структури типа DATE . Якщо ми визначимо person як struct  STUDENT person, то запис person.birthdate.year буде зсилатися на рік народження студента. Над змінною структури можна виконати операції взяття адреси змінної та присвоєння її вказівнику. struct DATE d1, *d2; //оголошено змінну типу DATE d1,та вказівник на тип DATE d2 d2 = &d1; // &d1 - взяття адреси змінної d1 та присвоєння його змінній d2 Для демонстрації прикладу використання цих операцій над структурами перепишемо наведену вище програму так, щоб в...
Антиботан аватар за замовчуванням

27.03.2013 00:03

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Завантаження файлу

Якщо Ви маєте на своєму комп'ютері файли, пов'язані з навчанням( розрахункові, лабораторні, практичні, контрольні роботи та інше...), і Вам не шкода ними поділитись - то скористайтесь формою для завантаження файлу, попередньо заархівувавши все в архів .rar або .zip розміром до 100мб, і до нього невдовзі отримають доступ студенти всієї України! Ви отримаєте грошову винагороду в кінці місяця, якщо станете одним з трьох переможців!
Стань активним учасником руху antibotan!
Поділись актуальною інформацією,
і отримай привілеї у користуванні архівом! Детальніше

Оголошення від адміністратора

Антиботан аватар за замовчуванням

пропонує роботу

Admin

26.02.2019 12:38

Привіт усім учасникам нашого порталу! Хороші новини - з‘явилась можливість кожному заробити на своїх знаннях та вміннях. Тепер Ви можете продавати свої роботи на сайті заробляючи кошти, рейтинг і довіру користувачів. Потрібно завантажити роботу, вказати ціну і додати один інформативний скріншот з деякими частинами виконаних завдань. Навіть одна якісна і всім необхідна робота може продатися сотні разів. «Головою заробляти» продуктивніше ніж руками! :-)

Новини